1. Field of the Invention
The present invention relates to computer systems. More specifically, the present invention relates to a method and apparatus for troubleshooting a computer system.
2. Related Art
Quality assurance (QA) and information technology (IT) professionals typically perform a large number of tests to confirm that a computer system is functioning properly. A common approach to troubleshooting a system is to utilize diagnostic software, which probes for information by interacting with the system or by automatically collecting output for analysis. In either case, diagnostic analysis can be simple or sophisticated. It may also be ad hoc or premeditated.
However, it is often difficult to use diagnostic software to detect aberrant behavior. One approach is to perform a baseline comparison by comparing diagnostic output with nominal output. The nominal output can be produced either from a similar system to the system under test, or from a log of historical data from the system under test that was generated during a prior period of normal operation. However, this type of log is often not sufficient for testing purposes because it is difficult to anticipate what information will be required to determine that the computer system is operating properly.
When the baseline log is not sufficient for testing purposes, a QA or an IT professional may attempt to perform ad hoc troubleshooting by comparing the results of a set of actions performed on multiple computer systems. With ad hoc troubleshooting (where personnel interact with the system in an unpremeditated and explorative manner), having access to another (identical or similar) system on which to make comparisons facilitates determining if specific behavior is abnormal. However, one problem with this approach is that to make a meaningful comparison a user needs to replicate explorative probing of the system under test on a baseline system. This can be both time-consuming and tedious, and comparative analysis in these cases is very error prone.
Nevertheless, in many cases when a user troubleshoots a software installation, it is necessary for the user to perform some ad hoc and explorative analysis. Frequently, an experienced systems expert may spend a lot of time engaged in ad hoc and explorative analysis during system service or deployment. Often, a lack of known baseline behavior with which to make comparisons exacerbates the problem of identifying aberrant system behavior in an ad hoc and explorative setting. Furthermore, because the ad hoc troubleshooting is explorative, the diagnostic information it produces tends to be unpredictable and varied (it depends on the situation and the response of the system expert to the challenge at hand). Therefore, there is generally no a priori set of nominal behaviors/responses available for a baseline comparison (other than the user's innate ability to sense unusual behavior).
Hence, what is needed is a method and apparatus for troubleshooting a computer system without the problems listed above.